package scalalala

//定义一个特质 Logger，该特质包含一个具体方法 log(message: String): Unit。该方法将消息记录到日志中。
//定义一个类 Calculators，它扩展 logger 特质
// Calculators 类具有两个具体方法 add(x: Int, y: Int): Int 和 subtract(x: Int, y: Int): Int
// 它们分别返回 x 和 y 的和或差。
//在 add 和 subtract 方法内部，分别使用 log 方法记录所执行的操作和结果。
trait logger {
  def log(message: String): Unit
}

class Calculators extends logger {
  def add(x: Int, y: Int): Int = {
    val result = x + y
    log(s"Adding $x and $y. Result: $result")
    result
  }

  def subtract(x: Int, y: Int): Int = {
    val result = x - y
    log(s"Subtracting $y from $x. Result: $result")
    result
  }

  override def log(message: String): Unit = {
    println(s"The log is $message")
  }
}
object Calculators{
  def main(args: Array[String]): Unit = {
    val cal =new Calculators()
    cal.add(1,2)
    cal.subtract(3,1)
  }

}
